<?php

class categoria_equiv_model extends CI_Model {

	public function __construct() {
		parent::__construct();
	}

	public function obtererPorId ($id) {
		$this->db->select('ID_CATEGORIA_EQUIV, NOMBRE, ID_CATEGORIA, EXPRESION, ID_BANCO');
		$this->db->from('categorias_equiv');
		$this->db->where('ID_CATEGORIA_EQUIV', $id);
		$query = $this->db->get();
		return $query->row();
	}

	public function obtenerItemXNombre ($texto, $banco) {
		$this->db->select('ID_CATEGORIA_EQUIV, NOMBRE, ID_CATEGORIA, EXPRESION, ID_BANCO');
		$this->db->from('categorias_equiv');
		$this->db->where('LOWER(NOMBRE)', strtolower($texto));
		$this->db->where('ID_BANCO', $banco);
		$query = $this->db->get();
		return $query->row();
	}
	
	public function asignarCategoria ($idCateEquiv, $idCategoria) {
		$data = array(
		   'ID_CATEGORIA' => $idCategoria
		);
		$this->db->where('ID_CATEGORIA_EQUIV', $idCateEquiv);
		$this->db->update('categorias_equiv', $data);
	}
	
	public function actualizar ($idCateEquiv, $nombre, $idCategoria, $expresion, $idBanco) {
		$data = array(
			'NOMBRE' => $nombre,
			'ID_CATEGORIA' => $idCategoria,
			'EXPRESION' => $expresion,
			'ID_BANCO' => $idBanco
		);
		
		$this->db->where('ID_CATEGORIA_EQUIV', $idCateEquiv);
		$this->db->update('categorias_equiv', $data);
	}

	public function guardar ($nombre, $idCategoria, $expresion, $idBanco) {
		$data = array(
			'NOMBRE' => $nombre,
			'ID_CATEGORIA' => $idCategoria,
			'EXPRESION' => $expresion,
			'ID_BANCO' => $idBanco
		);

		$this->db->insert('categorias_equiv', $data);
		return $this->db->insert_id();
	}

	public function obtererLista ($texto, $limite, $inicio) {
		$consulta = "SELECT CE.ID_CATEGORIA_EQUIV, CE.NOMBRE AS EQUIVALENCIA, CA.ID_CATEGORIA,
				CA.NOMBRE AS CATEGORIA, EXPRESION, BA.ID_BANCO, BA.NOMBRE AS BANCO FROM categorias_equiv CE 
				LEFT JOIN categorias CA ON CE.ID_CATEGORIA=CA.ID_CATEGORIA
				LEFT JOIN bancos BA on CE.ID_BANCO=BA.ID_BANCO";
		if ($texto!=null && $texto!='') {
			$consulta = $consulta . " WHERE CE.NOMBRE like '%$texto%'";
		}
		$consulta =  $consulta . " LIMIT $limite OFFSET $inicio";
		
		$query = $this->db->query($consulta);
		return $query->result();
	}

	public function itemsLista ($texto) {
		$consulta = "SELECT count(CE.ID_CATEGORIA_EQUIV) AS CANTIDAD
				FROM categorias_equiv CE 
				LEFT JOIN categorias CA ON CE.ID_CATEGORIA=CA.ID_CATEGORIA
				LEFT JOIN bancos BA on CE.ID_BANCO=BA.ID_BANCO";
		if ($texto!=null && $texto!='') {
			$consulta = $consulta . " WHERE CE.NOMBRE like '%$texto%'";
		}
		
		$query = $this->db->query($consulta);
		return $query->row()->CANTIDAD;
	}

	public function obtererSinEquiv ($texto, $limite, $inicio) {
		$consulta = "SELECT CE.ID_CATEGORIA_EQUIV, CE.NOMBRE AS EQUIVALENCIA, CA.ID_CATEGORIA,
				CA.NOMBRE AS CATEGORIA, EXPRESION, BA.ID_BANCO, BA.NOMBRE AS BANCO FROM categorias_equiv CE 
				LEFT JOIN categorias CA ON CE.ID_CATEGORIA=CA.ID_CATEGORIA 
				LEFT JOIN bancos BA on CE.ID_BANCO=BA.ID_BANCO
				WHERE CE.ID_CATEGORIA IS NULL";
		if ($texto!=null && $texto!='') {
			$consulta = $consulta . " AND CE.NOMBRE like '%$texto%'";
		}
		$consulta =  $consulta . " LIMIT $limite OFFSET $inicio";
		
		$query = $this->db->query($consulta);
		return $query->result();
	}

	public function itemsSinEquiv ($texto) {
		$consulta = "SELECT count(CE.ID_CATEGORIA_EQUIV) AS CANTIDAD
				FROM categorias_equiv CE 
				LEFT JOIN categorias CA ON CE.ID_CATEGORIA=CA.ID_CATEGORIA 
				LEFT JOIN bancos BA on CE.ID_BANCO=BA.ID_BANCO
				WHERE CE.ID_CATEGORIA IS NULL";
		if ($texto!=null && $texto!='') {
			$consulta = $consulta . " AND CE.NOMBRE like '%$texto%'";
		}

		$query = $this->db->query($consulta);
		return $query->row()->CANTIDAD;
	}
	
	public function obtenerPorExpresion ($idBanco, $expresion) {
		$this->db->select('ID_CATEGORIA_EQUIV, NOMBRE, ID_CATEGORIA, EXPRESION, ID_BANCO');
		$this->db->from('categorias_equiv');
		$this->db->where('EXPRESION', $expresion);
		$this->db->where('ID_BANCO', $idBanco);
		$query = $this->db->get();
		return $query->result();
	}
}